/*****************************************************************************
*        描述 :
*             文件描述
*        CLR版本:            3.5
*        创建者 :            蒋 光
*        个人域名:           jiangguang.net.cn
*        命名空间名称:       ECP.Interface
*        文件名:             IStaffService.cs
*        创建系统时间:       2012/11/2 19:07:02
*        创建年份:           2012
*
/*****************************************************************************/

namespace ECP.Interface
{
    using System.Data;
    using System.ServiceModel;
    using ECP.Utilities;

    [ServiceContract(Namespace = "http://jiangguang.net.cn/"), XmlSerializerFormat]
    public interface IStaffService
    {
        [OperationContract]
        string AddStaff(BaseUserInfo userInfo, string companyID, string departmentID, string workgroupID, string dutyID, string titleID, string code, string realName, bool isUser, string userName, string role, string email, string password, string sex, bool enabled, string description, out string statusCode, out string statusMessage);

        [OperationContract]
        int BatchDelete(BaseUserInfo userInfo, string[] ids);

        [OperationContract]
        int BatchMoveTo(BaseUserInfo userInfo, string[] ids, string organizeID);

        [OperationContract]
        int BatchSave(BaseUserInfo userInfo, DataTable dataTable);

        [OperationContract]
        int Delete(BaseUserInfo userInfo, string id);

        [OperationContract]
        int DeleteUser(BaseUserInfo userInfo, string staffID);

        [OperationContract]
        DataTable Get(BaseUserInfo userInfo, string id);

        [OperationContract]
        DataTable GetAddressList(BaseUserInfo userInfo, string organizeID, string search);

        [OperationContract]
        DataTable GetDT(BaseUserInfo userInfo);

        [OperationContract]
        DataTable GetDTByDepartment(BaseUserInfo userInfo, string departmentID, bool containChildren);

        [OperationContract]
        DataTable GetDTByIDs(BaseUserInfo userInfo, string[] ids);

        [OperationContract]
        DataTable GetDTByOrganize(BaseUserInfo userInfo, string organizeID, bool containChildren);

        [OperationContract]
        void Load();

        [OperationContract]
        int MoveTo(BaseUserInfo userInfo, string id, string organizeID);

        [OperationContract]
        int ResetSortCode(BaseUserInfo userInfo);

        [OperationContract]
        DataTable Search(BaseUserInfo userInfo, string organizeID, string search);

        [OperationContract]
        int SetStaffUser(BaseUserInfo userInfo, string staffID, string userID);

        [OperationContract]
        int UpdateAddressList(BaseUserInfo userInfo, DataTable dataTable, out string statusCode, out string statusMessage);

        [OperationContract]
        int UpdateStaff(BaseUserInfo userInfo, string id, string companyID, string departmentID, string workgroupID, string dutyID, string titleID, string code, string realName, bool isUser, string userID, string userName, string roleID, string email, string sex, bool enabled, string description, out string statusCode, out string statusMessage);
    }
}